package com.pdfbox.sample.quickstart;

import java.io.File;
import java.io.IOException;

import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.font.Standard14Fonts;

public class _8AddMultipleText {

  public static void main (String args[]) throws IOException {
    String existFileName = "E:/PdfBox_Examples/add_page.pdf";
    String exportFileName = "E:/PdfBox_Examples/周报_add_multiple_text.pdf";

    // 第1步:加载现有文档
    File file = new File(existFileName);
//    PDDocument document = PDDocument.load(file);
    PDDocument document = Loader.loadPDF(file);

    // 第2步:获取所需页面, 从索引 0 开始
    // 添加一个空白的页面模拟
    PDPage my_page = new PDPage();
    document.addPage(my_page);
    PDPage page = document.getPage(1);

    // 第3步:准备内容流
    PDPageContentStream contentStream = new PDPageContentStream(document, page);

    // 第4步:开始文本
    contentStream.beginText();

    // 第5步:设置文本的位置
    contentStream.newLineAtOffset(25, 725);

    // 第6步:设置字体
    PDType1Font font = new PDType1Font(Standard14Fonts.FontName.TIMES_ROMAN);
    contentStream.setFont(font, 16);

    // 第7步:设置文本引导
    contentStream.setLeading(14.5f);

    String text1 = "This is an example of adding text to a page in the pdf document. we can add as many lines";
    String text2 = "as we want like this using the ShowText()  method of the ContentStream class";
    // 第8步:使用换行符插入多个字符串
    contentStream.showText(text1);
    contentStream.newLine();
    contentStream.showText(text2);

    // 第9步:结束文本
    contentStream.endText();
    System.out.println("Content added");

    // 步骤10:关闭PDPageContentStream
    contentStream.close();

    // 第11步:保存文档
    document.save(new File(exportFileName));

    // 第12步:关闭文档
    document.close();

    System.out.println("export " + exportFileName + " success");
  }

}
